SET ANSI_NULLS ON 
GO
SET QUOTED_IDENTIFIER ON
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[siodge_reporte_destinoAsignado]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
	drop procedure [dbo].[siodge_reporte_destinoAsignado]
GO

create			procedure			[dbo].[siodge_reporte_destinoAsignado]
								@GestionId int = 3
AS
BEGIN

select da.FechaRegistro,
	   Grado = (select top 1 g.Nombre from Grado g 
				inner join HistorialAscenso ha on ha.GradoId = g.GradoId
				where ha.PersonaId = p.personaId order by g.NivelJerarquico desc),
	   
	   Arma = (select top 1 a.Nombre from Arma a 
				inner join PersonaArma pa on pa.ArmaId = a.ArmaId
				where pa.PersonaId = p.PersonaId and pa.EsActual = 1),
	   PersonaId = p.PersonaId,
	   NombrePersona  = isnull(p.ApellidoPaterno,'')+' '+isnull(p.ApellidoMaterno,'')+' '+isnull(p.Nombre1,'')+' '+isnull(p.Nombre2,''),
	   um.UnidadMilitarId,
	   UnidadMilitar = um.Nombre,
	   TipoCargoComando = tcc.Nombre,
	   TipoUnidad =tu.Codigo+' '+tu.Nombre,
	   Categoria = ca.Codigo+' '+ca.Nombre,
	   RegionUnidad = ru.Nombre,
	   Region = r.Nombre,
	   da.Observaciones,
	   UnidadAceptaEntradas =  um.AceptaEntradas
from DestinoAsignado da
inner join Persona p on p.PersonaId = da.PersonaId 
inner join RequerimientoConfig rc on rc.RequerimientoConfigId = da.RequerimientoConfigId
inner join UnidadMilitar um on um.UnidadMilitarId = rc.UnidadMilitarId
inner join TipoCargoComando tcc on tcc.TipoCargoComandoId = rc.TipoCargoComandoId
left join TipoUnidad tu on tu.TipoUnidadId = um.TipoUnidadId
left join CategoriaUnidad ca on ca.CategoriaUnidadId = um.CategoriaUnidadId
left join RegionUnidad ru on ru.RegionUnidadId = ca.RegionUnidadId
left join DUA_Region r on r.RegionId = um.RegionId

where da.GestionId = @GestionId


END
GO



--select * from DUA_Usuario where Nombre like '7911231'